草庐IT

sql - GROUP BY 和 ORDER BY

全部标签

sql-server - Oozie Sqoop 作业

我正在尝试将sqoop作业作为oozie操作运行。我将MySQL作为jobtracker节点上的元存储。我在某处读到ooziesqoop无法通过导入创建配置单元表。所以我试图将数据转储到hdfs中。现在还是这样吗?我检查了共享库。我正在尝试从MSSQL数据库中获取Sqoop。当我运行不需要来自shell的元存储的sqoop命令时,它可以工作。sqoopimport--connect'jdbc:sqlserver://host;username=sqoopimport;password=password;database=db1'--tablet1--target-dir/user/ro

sql - 生成 map 的 Hive 聚合函数

我有以下配置单元表ID、类、值1,A,0.31,B,0.41,C,0.52,B,0.12,C,0.2我想得到ID,类:值1,[A:0.3,B:0.4,C:0.5]2,[B:0.1,C:0.2]我知道有一个collect_set()UDAF可以生成类列表或值列表,是否可以获取键值对列表?注意:我想我可以使用两个collect_set(),一个用于类列,一个用于值列,但我不确定列表的顺序是否相同。 最佳答案 我使用Brickhouse库中的UnionUDAF来做类似的事情。您从每一对创建一个映射,然后在聚合过程中将它们联合在一起。Add

MySQL中使用SQL语句进行日期比较

日期比较在数据库中是一项常见的操作,它允许我们根据日期的先后顺序来查询和筛选数据。MySQL提供了丰富的日期和时间函数,使得日期比较变得相对简单。本文将介绍如何在MySQL中使用SQL语句进行日期比较,并提供相应的源代码示例。在MySQL中,可以使用比较运算符(如大于、小于、等于等)对日期进行比较。下面是一些常用的比较运算符:大于(>):用于比较一个日期是否在另一个日期之后。小于(大于等于(>=):用于比较一个日期是否在另一个日期之后或与之相等。小于等于(等于(=):用于比较两个日期是否相等。下面是几个示例,演示了如何使用这些比较运算符进行日期比较。查询早于特定日期的数据:SELECT*FRO

hadoop - 在 spark SQL 中加载数据时获取 Hive 表中的空值

将数据从文件加载到配置单元表时,将插入空值。sqlCon.sql("createtablehive_6(idInt,nameString)partitionedby(dateString)rowformatdelimitedfieldsterminatedby','");sqlCon.sql("loaddatalocalinpath'/home/cloudera/file.txt'intotablehive_6partition(date='19July')");sqlCon.sql("select*fromhive_6").show()+----+----+------+|id|na

sql - 如何在 HIVE 中使用 "in"和 "having"子句?

我的数据是这样的:col1col2col3AB3AB1AB2CB1我想获取所有包含col3某些行的col1和col2的唯一组。比如,所有包含“2”的col1和col2组。我想做这样的事情:selectcol1,col2fromsometablegroupbycol1,col2havingcol3=1andcol3=2但我希望它只返回在col3中同时具有1和2实例的组。所以,查询后的结果应该是这样的:col1col2AB我如何在HIVE中表达它?谢谢。 最佳答案 我不知道为什么其他人删除了正确然后几乎正确的答案,但我会备份他们的答案。

sql - 正则表达式删除字符串中单词之间的空格

我正在使用Hive(Hadoop)编写类似SQL的语句。我需要删除字段中的空格。例如,邮政编码可以是XX000XX,我想删除0XX之前的空格到目前为止,我有这个正则表达式:REGEXP_REPLACE(postcode,'[[:space:]]*','')但是好像不行。任何人都可以建议吗? 最佳答案 仅仅做一个简单的(非正则表达式)替换会有什么问题吗?试试这个:REPLACE(postcode,'','')如果您的versionofHive不支持REPLACE(),那么你可以使用:REGEXP_REPLACE(postcode,'\

sql - 多列和多行的 Hive/SQL 计数出现次数

我正在寻找一种计算出现次数的智能方法。这是一个例子:UserIDCityIDCountryIDTagID1000001305100001130610000022071000002408100001140610000214051000021206我想做什么:我想按列计算每个用户值的出现次数。最后,我想要一个表格来显示有多少用户具有不同的特征。结果应该看起来像这样-或多或少Different_CityIDDifferent_CountryIDsDifferent_TagIDs132解释:Different_CityIDs:仅UserID100000具有不同的CityIDDifferent_

sql - 获取 Hive 中所有列的 NULL 百分比

我想获取Hive表中NULL值的百分比。有没有一种简单的方法可以做到这一点而不必枚举查询中的所有列名?在这种情况下,大约有50k行和20列。提前致谢!类似于:SELECTcount(each_column)/count(*)FROMTABLE_1WHEREeach_column=NULL; 最佳答案 如果您使用代码执行此操作,则需要列出列。这是一种方法:selectavg(casewhencol1isnullthen1.0else0.0end)ascol1_null_p,avg(casewhencol2isnullthen1.0el

sql - 使用描述创建 Hive 表

Hive建表时应该在什么地方添加表描述?Tablename:"Orders"TableDescription:"OrdersfromVendorABC." 最佳答案 您应该在命令中使用[COMMENTtable_comment]关键字。例子:CREATETABLEIFNOTEXISTSorders(idString,nameString)COMMENT'OrdersfromVendorABC.'ROWFORMATDELIMITEDFIELDSTERMINATEDBY'\t'LINESTERMINATEDBY'\n'STOREDAST

sql - Hive 查询中的临时加入(时间上非常接近的事件)

我需要一个我很难搞清楚的配置单元查询。我有一个看起来像这样的时间序列:timesourceword1word2...etc2012-02-0123:43:16.998824300012B3BFAF02012-02-0123:43:16.999356100022326ABAA2012-02-0123:43:16.999887900022327ABAA我需要一个查询,如果一个源中的记录满足特定条件,除了该记录之外,它还应该及时返回一个或多个记录来自第二个source满足一组不同的条件。到目前为止,我的尝试是这样的:SELECTtimeFROMmessagesCJOINmessagesDon